In the early days of modern computing, the large size and cost of computers tended to result in a concentration of computer equipment in large data centers. Most commercial users of computers would have paid one or more data center operators to perform their computing tasks. Over the past decades, miniaturization and cost decreases have driven a trend toward more commercial computer users owning and operating their own computer systems. This trend is not universal, however.
One exception includes those computer users whose computing needs are particularly massive and/or require exceptional reliability, redundancy or security. Examples of such users include very large corporations, and especially financial sector corporations such as banks, exchanges, brokerages and the like. These types of corporations will often contract with third-party providers to supply their computing needs.
The preeminent example of a third party provider of computing services is the International Business Machines (IBM) Corporation. IBM has several thousand users who pay for the capability and reliability of its System z (“z” standing for “zero downtime”) computing platform. The way users rely on the performance of the workload on the System z platform is illustrative background for the present invention's system and method for managing computer usage.
In today's rapidly changing information technology (IT) environments, the larger companies often buy or lease the zSeries hardware and have their own z-platform specialists, whereas smaller companies looking for the same reliability and performance often turn to third parties that run data center(s) and offer the usage of their hardware (such a third party is referred to herein as a “provider” or “outsourcer”; a company using third party hardware/services is referred to as the “customer”). The provider/outsourcer often also offers the services of its z-platform specialists to the customers. Normally the customer pays for a predetermined maximum actual processing capacity each month, where the following normally apply:                The maximum processing capacity is related to the actual processing capacity usage at any given time, not to any average usage over time.        It is the obligation of the provider to guarantee that the predetermined maximum computing capacity is available to the customer at any time.        If the predetermined maximum capacity was calculated too low and additional capacity is needed, then additional payments by the customer are necessary.        If the capacity that was predetermined is not used entirely, there is no reimbursement for unused capacity.        
With the introduction of “absolute capping” on the hardware zEC12 and zBC12 in 2013, IBM offers an effective method for limiting actual processing capacity usage for logical partitions, helpful for customers of third party providers/outsourcers that bill based thereon. Values for absolute capping are expressed in terms of 1/100th of a processor, ranging from 0.01 (1% of a processor) to 255 (255 processors).
Each group of logically-related computing functions being performed for a user is referred to as a logical partition (LPAR). All logical partitions together constitute the total workload of a customer. Workload itself enters the system using a “service class”. Within each service class the workload is allocated to one of multiple workload importance levels, e.g. the first part of the workload to a high class, but the longer the workload takes to execute, the lower the workload importance level gets. Different parts of a service class definition are called “periods”. When classifying service classes, the following factors are important:                How time critical is the workload                    Workload that is most time critical runs in service classes that are assigned to importance level 0 (IMP0), then importance level 1 (IMP1) etc. until the workload that is least time critical is assigned to importance level 6 (IMP6, Discretionary).                        Which performance goal does the user want the workload to achieve?                    Within each service class users can define a performance goal, e.g. by defining that a percentage of the workload is expected to be finished within a certain time or using a certain defined processing capacity only (e.g. the user could define that 90% of the online transactions should be finished within 0.01 seconds (clock time))                        
While manual intervention gives customers and providers some ability to manage workload performance and costs incurred, with the recent introduction of absolute capping further improvements are possible.